{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "unusual-responsibility",
   "metadata": {},
   "source": [
    "# Introduction\n",
    "\n",
    "This example demonstrates a simple OCR model built with the Functional API. Apart from combining CNN and RNN, it also illustrates how you can instantiate a new layer and use it as an \"Endpoint layer\" for implementing CTC loss. \n",
    "\n",
    "https://keras.io/examples/vision/captcha_ocr/"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "increasing-fever",
   "metadata": {},
   "source": [
    "# Setup"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "failing-reflection",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from pathlib import Path\n",
    "from collections import Counter\n",
    "\n",
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "from tensorflow.keras import layers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "supreme-fireplace",
   "metadata": {},
   "outputs": [],
   "source": [
    "from auto_everything.disk import Disk\n",
    "from auto_everything.terminal import Terminal\n",
    "disk = Disk()\n",
    "t = Terminal()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "conscious-piano",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/home/yingshaoxo/Keras_Lab/ocr_for_captchas'"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "root_folder = disk.create_a_new_folder_under_home(\"Keras_Lab/ocr_for_captchas\")\n",
    "root_folder"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "renewable-cincinnati",
   "metadata": {},
   "source": [
    "# Load the data\n",
    "\n",
    "Download and uncompress the dataset to `~/Keras_Lab/ocr_for_captchas/captcha_images_v2/`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "stupid-letter",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "> Now you got 1041 images.\n"
     ]
    }
   ],
   "source": [
    "download_file = os.path.join(root_folder, \"captcha_images_v2.zip\")\n",
    "images_folder = os.path.join(root_folder, \"captcha_images_v2\")\n",
    "\n",
    "if not disk.exists(download_file):\n",
    "    t.run_command(\n",
    "        f\"\"\"\n",
    "    wget https://github.com/AakashKumarNain/CaptchaCracker/raw/master/captcha_images_v2.zip -P {root_folder}\n",
    "        \"\"\"\n",
    "    )\n",
    "    \n",
    "if not disk.exists(images_folder):\n",
    "    disk.uncompress(download_file, images_folder)\n",
    "    \n",
    "print(f\"> Now you got {len(os.listdir(images_folder))} images.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "adverse-tennessee",
   "metadata": {},
   "source": [
    "The dataset contains 1040 captcha files as png images. The label for each sample is a string, the name of the file (minus the file extension). \n",
    "\n",
    "We will map each character in the string to an integer for training the model. Similary, we will need to map the predictions of the model back to strings. For this purpose we will maintain two dictionaries, mapping characters to integers, and integers to characters, respectively."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "prepared-spyware",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['/home/yingshaoxo/Keras_Lab/ocr_for_captchas/captcha_images_v2/226md.png',\n",
       " '/home/yingshaoxo/Keras_Lab/ocr_for_captchas/captcha_images_v2/22d5n.png']"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Path to the images directory\n",
    "data_dir = Path(images_folder)\n",
    "\n",
    "# Get list of all the images\n",
    "images = sorted(list(map(str, list(data_dir.glob(\"*.png\")))))\n",
    "images[:2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "understanding-shepherd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['226md', '22d5n']"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# remove file extension from filename\n",
    "labels = [img.split(os.path.sep)[-1].split(\".png\")[0] for img in images]\n",
    "labels[:2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "intermediate-compatibility",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'a', 'b', 'c', 'd', 'e', 'f'}"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# example, get char from a list of strings\n",
    "set(char for string in [\"abc\", \"def\"] for char in string)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "excessive-basics",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'2',\n",
       " '3',\n",
       " '4',\n",
       " '5',\n",
       " '6',\n",
       " '7',\n",
       " '8',\n",
       " 'b',\n",
       " 'c',\n",
       " 'd',\n",
       " 'e',\n",
       " 'f',\n",
       " 'g',\n",
       " 'm',\n",
       " 'n',\n",
       " 'p',\n",
       " 'w',\n",
       " 'x',\n",
       " 'y'}"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get char set from the list of labels\n",
    "characters = set(char for label in labels for char in label)\n",
    "characters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "caroline-bulgarian",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of images found:  1040\n",
      "Number of labels found:  1040\n",
      "Number of unique characters:  19\n",
      "Characters present:  {'2', 'x', 'm', '5', 'f', '7', 'b', '4', 'c', 'p', '3', 'n', '6', 'e', '8', 'w', 'd', 'g', 'y'}\n"
     ]
    }
   ],
   "source": [
    "print(\"Number of images found: \", len(images))\n",
    "print(\"Number of labels found: \", len(labels))\n",
    "print(\"Number of unique characters: \", len(characters))\n",
    "print(\"Characters present: \", characters)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "reduced-village",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Batch size for training and validation\n",
    "batch_size = 16\n",
    "\n",
    "# Desired image dimensions\n",
    "img_width = 200\n",
    "img_height = 50\n",
    "\n",
    "# Factor by which the image is going to be downsampled\n",
    "# by the convolutional blocks. We will be using two\n",
    "# convolution blocks and each block will have\n",
    "# a pooling layer which downsample the features by a factor of 2.\n",
    "# Hence total downsampling factor would be 4.\n",
    "downsample_factor = 4\n",
    "\n",
    "# Maximum length of any captcha in the dataset\n",
    "max_length = max([len(label) for label in labels])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "lasting-explanation",
   "metadata": {},
   "source": [
    "# Preprocessing"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "electoral-intention",
   "metadata": {},
   "source": [
    "## We need two dictionaries: char to num, num to char"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "homeless-badge",
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# Mapping characters to integers\n",
    "char_to_num = layers.experimental.preprocessing.StringLookup(\n",
    "    vocabulary=list(characters), num_oov_indices=0, mask_token=None\n",
    ")\n",
    "\n",
    "# Mapping integers back to original characters\n",
    "num_to_char = layers.experimental.preprocessing.StringLookup(\n",
    "    vocabulary=char_to_num.get_vocabulary(), mask_token=None, invert=True\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "balanced-rental",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<tensorflow.python.keras.layers.preprocessing.string_lookup.StringLookup object at 0x7efe9e5c3e80>\n"
     ]
    }
   ],
   "source": [
    "# layers.experimental.preprocessing.StringLookup` is a layer\n",
    "# https://www.tensorflow.org/api_docs/python/tf/keras/layers/experimental/preprocessing/StringLookup\n",
    "print( char_to_num )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "burning-campaign",
   "metadata": {},
   "source": [
    "## We need to split the data into `training set` and `test set`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "sacred-auditor",
   "metadata": {},
   "outputs": [],
   "source": [
    "def split_data(images, labels, train_size=0.9, shuffle=True):\n",
    "    # 1. Get the total size of the dataset\n",
    "    size = len(images)\n",
    "    # 2. Make an indices array and shuffle it, if required\n",
    "    indices = np.arange(size)\n",
    "    if shuffle:\n",
    "        np.random.shuffle(indices)\n",
    "    # 3. Get the size of training samples\n",
    "    train_samples = int(size * train_size)\n",
    "    # 4. Split data into training and validation sets\n",
    "    x_train, y_train = images[indices[:train_samples]], labels[indices[:train_samples]]\n",
    "    x_valid, y_valid = images[indices[train_samples:]], labels[indices[train_samples:]]\n",
    "    return x_train, x_valid, y_train, y_valid\n",
    "\n",
    "\n",
    "# Splitting data into training and validation sets\n",
    "x_train, x_valid, y_train, y_valid = split_data(np.array(images), np.array(labels))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "vocal-county",
   "metadata": {},
   "source": [
    "## Define an image encoding function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "alive-video",
   "metadata": {},
   "outputs": [],
   "source": [
    "def encode_single_sample(img_path, label):\n",
    "    # 1. Read image\n",
    "    img = tf.io.read_file(img_path)\n",
    "    # 2. Decode and convert to grayscale\n",
    "    img = tf.io.decode_png(img, channels=1)\n",
    "    # 3. Convert to float32 in [0, 1] range\n",
    "    img = tf.image.convert_image_dtype(img, tf.float32)\n",
    "    # 4. Resize to the desired size\n",
    "    img = tf.image.resize(img, [img_height, img_width])\n",
    "    # 5. Transpose the image because we want the time\n",
    "    # dimension to correspond to the width of the image.\n",
    "    img = tf.transpose(img, perm=[1, 0, 2])\n",
    "    # 6. Map the characters in label to numbers\n",
    "    label = char_to_num(tf.strings.unicode_split(label, input_encoding=\"UTF-8\"))\n",
    "    # 7. Return a dict as our model is expecting two inputs\n",
    "    return {\"image\": img, \"label\": label}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "engaged-munich",
   "metadata": {},
   "source": [
    "transpose: https://www.tensorflow.org/api_docs/python/tf/transpose"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "generic-sandwich",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<tf.Tensor: shape=(2, 3, 2), dtype=int32, numpy=\n",
       "array([[[ 1,  4],\n",
       "        [ 2,  5],\n",
       "        [ 3,  6]],\n",
       "\n",
       "       [[ 7, 10],\n",
       "        [ 8, 11],\n",
       "        [ 9, 12]]], dtype=int32)>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = tf.constant([[[ 1,  2,  3],\n",
    "                  [ 4,  5,  6]],\n",
    "                 [[ 7,  8,  9],\n",
    "                  [10, 11, 12]]])\n",
    "                  \n",
    "tf.transpose(x, perm=[0, 2, 1])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "normal-shark",
   "metadata": {},
   "source": [
    "# Create Dataset objects"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "wooden-queen",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['/home/yingshaoxo/Keras_Lab/ocr_for_captchas/captcha_images_v2/mc8w2.png'\n",
      " '/home/yingshaoxo/Keras_Lab/ocr_for_captchas/captcha_images_v2/c55c6.png'\n",
      " '/home/yingshaoxo/Keras_Lab/ocr_for_captchas/captcha_images_v2/3eny7.png']\n",
      "['mc8w2' 'c55c6' '3eny7']\n"
     ]
    }
   ],
   "source": [
    "print(x_train[:3])\n",
    "print(y_train[:3])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "announced-trigger",
   "metadata": {},
   "outputs": [],
   "source": [
    "train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))\n",
    "train_dataset = (\n",
    "    train_dataset.map(\n",
    "        encode_single_sample, num_parallel_calls=tf.data.experimental.AUTOTUNE\n",
    "    )\n",
    "    .batch(batch_size)\n",
    "    .prefetch(buffer_size=tf.data.experimental.AUTOTUNE)\n",
    ")\n",
    "\n",
    "validation_dataset = tf.data.Dataset.from_tensor_slices((x_valid, y_valid))\n",
    "validation_dataset = (\n",
    "    validation_dataset.map(\n",
    "        encode_single_sample, num_parallel_calls=tf.data.experimental.AUTOTUNE\n",
    "    )\n",
    "    .batch(batch_size)\n",
    "    .prefetch(buffer_size=tf.data.experimental.AUTOTUNE)\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dimensional-commons",
   "metadata": {},
   "source": [
    "# Visualize the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "bearing-prison",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 16 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "_, ax = plt.subplots(4, 4, figsize=(10, 5))\n",
    "\n",
    "for batch in train_dataset.take(1):\n",
    "    images = batch[\"image\"]\n",
    "    labels = batch[\"label\"]\n",
    "    for i in range(len(labels)):\n",
    "        img = (images[i] * 255).numpy().astype(\"uint8\")\n",
    "        label = tf.strings.reduce_join(num_to_char(labels[i])).numpy().decode(\"utf-8\")\n",
    "        ax[i // 4, i % 4].imshow(img[:, :, 0].T, cmap=\"gray\")\n",
    "        ax[i // 4, i % 4].set_title(label)\n",
    "        ax[i // 4, i % 4].axis(\"off\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "suitable-demand",
   "metadata": {},
   "source": [
    "# Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "present-beauty",
   "metadata": {},
   "outputs": [],
   "source": [
    "class CTCLayer(layers.Layer):\n",
    "    def __init__(self, name=None):\n",
    "        super().__init__(name=name)\n",
    "        self.loss_fn = keras.backend.ctc_batch_cost\n",
    "\n",
    "    def call(self, y_true, y_pred):\n",
    "        # Compute the training-time loss value and add it\n",
    "        # to the layer using `self.add_loss()`.\n",
    "        batch_len = tf.cast(tf.shape(y_true)[0], dtype=\"int64\")\n",
    "        input_length = tf.cast(tf.shape(y_pred)[1], dtype=\"int64\")\n",
    "        label_length = tf.cast(tf.shape(y_true)[1], dtype=\"int64\")\n",
    "\n",
    "        input_length = input_length * tf.ones(shape=(batch_len, 1), dtype=\"int64\")\n",
    "        label_length = label_length * tf.ones(shape=(batch_len, 1), dtype=\"int64\")\n",
    "\n",
    "        loss = self.loss_fn(y_true, y_pred, input_length, label_length)\n",
    "        self.add_loss(loss)\n",
    "\n",
    "        # At test time, just return the computed predictions\n",
    "        return y_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "prompt-stockholm",
   "metadata": {},
   "outputs": [],
   "source": [
    "def build_model():\n",
    "    # Inputs to the model\n",
    "    input_img = layers.Input(\n",
    "        shape=(img_width, img_height, 1), name=\"image\", dtype=\"float32\"\n",
    "    )\n",
    "    labels = layers.Input(name=\"label\", shape=(None,), dtype=\"float32\")\n",
    "\n",
    "    # First conv block\n",
    "    x = layers.Conv2D(\n",
    "        32,\n",
    "        (3, 3),\n",
    "        activation=\"relu\",\n",
    "        kernel_initializer=\"he_normal\",\n",
    "        padding=\"same\",\n",
    "        name=\"Conv1\",\n",
    "    )(input_img)\n",
    "    x = layers.MaxPooling2D((2, 2), name=\"pool1\")(x)\n",
    "\n",
    "    # Second conv block\n",
    "    x = layers.Conv2D(\n",
    "        64,\n",
    "        (3, 3),\n",
    "        activation=\"relu\",\n",
    "        kernel_initializer=\"he_normal\",\n",
    "        padding=\"same\",\n",
    "        name=\"Conv2\",\n",
    "    )(x)\n",
    "    x = layers.MaxPooling2D((2, 2), name=\"pool2\")(x)\n",
    "\n",
    "    # We have used two max pool with pool size and strides 2.\n",
    "    # Hence, downsampled feature maps are 4x smaller. The number of\n",
    "    # filters in the last layer is 64. Reshape accordingly before\n",
    "    # passing the output to the RNN part of the model\n",
    "    new_shape = ((img_width // 4), (img_height // 4) * 64)\n",
    "    x = layers.Reshape(target_shape=new_shape, name=\"reshape\")(x)\n",
    "    x = layers.Dense(64, activation=\"relu\", name=\"dense1\")(x)\n",
    "    x = layers.Dropout(0.2)(x)\n",
    "\n",
    "    # RNNs\n",
    "    x = layers.Bidirectional(layers.LSTM(128, return_sequences=True, dropout=0.25))(x)\n",
    "    x = layers.Bidirectional(layers.LSTM(64, return_sequences=True, dropout=0.25))(x)\n",
    "\n",
    "    # Output layer\n",
    "    x = layers.Dense(len(characters) + 1, activation=\"softmax\", name=\"dense2\")(x)\n",
    "\n",
    "    # Add CTC layer for calculating CTC loss at each step\n",
    "    output = CTCLayer(name=\"ctc_loss\")(labels, x)\n",
    "\n",
    "    # Define the model\n",
    "    model = keras.models.Model(\n",
    "        inputs=[input_img, labels], outputs=output, name=\"ocr_model_v1\"\n",
    "    )\n",
    "    # Optimizer\n",
    "    opt = keras.optimizers.Adam()\n",
    "    # Compile the model and return\n",
    "    model.compile(optimizer=opt)\n",
    "    return model\n",
    "\n",
    "\n",
    "# Get the model\n",
    "model = build_model()\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "pleasant-reset",
   "metadata": {},
   "source": [
    "# Training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "forbidden-hampton",
   "metadata": {},
   "outputs": [],
   "source": [
    "epochs = 100\n",
    "early_stopping_patience = 10\n",
    "# Add early stopping\n",
    "early_stopping = keras.callbacks.EarlyStopping(\n",
    "    monitor=\"val_loss\", patience=early_stopping_patience, restore_best_weights=True\n",
    ")\n",
    "\n",
    "# Train the model\n",
    "history = model.fit(\n",
    "    train_dataset,\n",
    "    validation_data=validation_dataset,\n",
    "    epochs=epochs,\n",
    "    callbacks=[early_stopping],\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "legislative-commons",
   "metadata": {},
   "source": [
    "# Inference"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "alternate-timer",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Get the prediction model by extracting layers till the output layer\n",
    "prediction_model = keras.models.Model(\n",
    "    model.get_layer(name=\"image\").input, model.get_layer(name=\"dense2\").output\n",
    ")\n",
    "prediction_model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "outer-kansas",
   "metadata": {},
   "outputs": [],
   "source": [
    "# A utility function to decode the output of the network\n",
    "def decode_batch_predictions(pred):\n",
    "    input_len = np.ones(pred.shape[0]) * pred.shape[1]\n",
    "    # Use greedy search. For complex tasks, you can use beam search\n",
    "    results = keras.backend.ctc_decode(pred, input_length=input_len, greedy=True)[0][0][\n",
    "        :, :max_length\n",
    "    ]\n",
    "    # Iterate over the results and get back the text\n",
    "    output_text = []\n",
    "    for res in results:\n",
    "        res = tf.strings.reduce_join(num_to_char(res)).numpy().decode(\"utf-8\")\n",
    "        output_text.append(res)\n",
    "    return output_text"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "assumed-portable",
   "metadata": {},
   "outputs": [],
   "source": [
    "#  Let's check results on some validation samples\n",
    "for batch in validation_dataset.take(1):\n",
    "    batch_images = batch[\"image\"]\n",
    "    batch_labels = batch[\"label\"]\n",
    "\n",
    "    preds = prediction_model.predict(batch_images)\n",
    "    pred_texts = decode_batch_predictions(preds)\n",
    "\n",
    "    orig_texts = []\n",
    "    for label in batch_labels:\n",
    "        label = tf.strings.reduce_join(num_to_char(label)).numpy().decode(\"utf-8\")\n",
    "        orig_texts.append(label)\n",
    "\n",
    "    _, ax = plt.subplots(4, 4, figsize=(15, 5))\n",
    "    for i in range(len(pred_texts)):\n",
    "        img = (batch_images[i, :, :, 0] * 255).numpy().astype(np.uint8)\n",
    "        img = img.T\n",
    "        title = f\"Prediction: {pred_texts[i]}\"\n",
    "        ax[i // 4, i % 4].imshow(img, cmap=\"gray\")\n",
    "        ax[i // 4, i % 4].set_title(title)\n",
    "        ax[i // 4, i % 4].axis(\"off\")\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
